import csv
from datetime import datetime, timedelta

def generate_companies_csv(filename,i_start=1, i_end=100):
    # 准备数据列表
    data = []

    for i in range(i_start, i_end + 1):
        name = f"公司{i}"
        reg_date_obj = datetime(2020, 1, 1) + timedelta(days=i * 3)
        reg_date_str = reg_date_obj.strftime("%Y-%m-%d")
        status = "注销" if i % 10 == 0 else "存续"
        legal_rep = f"法人{(i % 50) + 1}"
        # 模拟 RAND() 行为：使用 i 的哈希感随机性（固定可复现）
        capital_seed = (i * 97) % 100  # 模拟随机数
        registered_capital = ((capital_seed + 1) * 100000)
        industry = ['科技', '金融', '制造', '贸易', '房地产'][i % 5]
        risk_level = ['低', '中', '高'][(i + i % 7) % 3]

        # 生成背景描述（<100字）
        context = (
            f"{name}成立于{reg_date_obj.year}年，所属行业为{industry}，法定代表人为{legal_rep}，"
            f"注册资本{registered_capital:,}元。公司目前处于{status}状态，经营情况"
            f"{'受限' if status == '注销' else '稳定'}，风险评级为{risk_level}，在行业内具备一定的"
            f"{'发展基础' if risk_level == '低' else '运营挑战'}。"
        )

        # 添加到数据列表
        data.append({
            "company_name": name,
            "context": context,
            "risk_level": risk_level,
            "industry": industry,
            "status": status,
            "legal_rep": legal_rep,
            "registered_capital": registered_capital,
            "reg_date": reg_date_str
        })

    # 写入 CSV 文件
    keys = data[0].keys()
    with open(filename, mode='w', encoding='utf-8-sig', newline='') as f:  # ✅ 只写一次 newline
        writer = csv.DictWriter(f, fieldnames=keys)
        writer.writeheader()
        writer.writerows(data)

    print(f"✅ 已成功生成 {len(data)} 条公司背景，保存为 '{filename}'")

# 执行生成
generate_companies_csv(i_start=1, i_end=100, filename='../static/file_csv/companies_context.csv')